Reinforcement Learning Course

The project involved teaching Reinforcement Learning to Master's students at Epitech Montpellier. The course took place between September 2023 and January 2024, with a focus on practical applications and project-based learning. The course was designed to provide students with a solid understanding of reinforcement learning concepts and their applications in real-world scenarios.

Tasks & Objectives

As a teaching assistant, my role involved introducing key concepts in reinforcement learning, guiding students through their projects, and ensuring they understood the underlying principles. One of the main objectives was to help students develop practical skills in implementing reinforcement learning algorithms and applying them to solve real-world problems.

Success criteria included not only students' ability to implement reinforcement learning algorithms but also their understanding of the theoretical foundations and their ability to justify their algorithmic choices. A key objective was to encourage critical thinking and problem-solving skills, allowing students to tackle complex problems independently.

Actions and Development

My first step was to design a comprehensive curriculum that balanced theoretical concepts with practical applications. I then created a series of Jupyter notebooks to guide students through the implementation of various reinforcement learning algorithms. For the final project, I provided a framework that allowed students to explore different aspects of reinforcement learning while maintaining a clear structure.

Regular interactions with students through office hours and project reviews facilitated their learning. Collaboration with other teaching assistants was crucial for developing a consistent approach to teaching and assessment. Despite the complexity of reinforcement learning concepts, implementing practical exercises represented a major challenge but also a learning opportunity.

Key decisions were made collectively during weekly teaching team meetings. For the project framework, I presented a Proof of Concept (POC) before implementing the complete solution.

Results

The results are multiple: students successfully implemented reinforcement learning algorithms, improved their understanding of theoretical concepts, and developed critical thinking skills. The project framework allowed students to explore different aspects of reinforcement learning while maintaining a clear structure. Additionally, the Jupyter notebooks provided a valuable resource for students to learn at their own pace.

I learned to effectively communicate complex concepts, to design engaging and challenging projects, and to provide constructive feedback. Finally, the experience of teaching reinforcement learning strengthened my own understanding of the subject and improved my ability to explain complex ideas clearly.

Technical Stack

The project relies on the following tools and technologies:

  • Programming Language : Python
  • Development Environment : Jupyter Notebooks
  • Scientific Libraries : NumPy, pandas, Matplotlib
  • RL Framework : Gymnasium
  • Algorithm : Deep Q-Learning, Q-Learning

It is important to note that this technical stack was imposed by the pedagogical context at Epitech. The major technical challenges encountered include:

  • Adapting algorithm complexity to M2 student level
  • Managing the simplicity of the TaxiDriver problem which masked algorithmic challenges
  • Producing quality didactic code and pedagogical resources